
//引入用户集合的构造函数
const { User, validateUser } = require('../../modle/user');

module.exports = async(req, res, next) => {
    

    //实施验证
    
    try {
        await validateUser(req.body);
        // 下方注释处为原版写法，通过Latest Version: 17.1.1可以对比此处语法已经变更
        // await Joi.validate({username:'wwww',brith:2020},schema);
    } catch(ex) {
        //return console.log(ex.message);
        //return res.redirect(`/admin/user-edit?message=${ex.message}`)
        //使用json.stringify() 将对象数据类型转换为字符串数据类型
        return next(JSON.stringify({path:`/admin/user-edit`,message: ex.message}))
            
    }
        
        
    //根据邮箱地址查询用户是否存在
    let user = await User.findOne({email: req.body.email});
    //如果用户已存在 邮箱地址已经被别人占用
    if (user) {
        //重定向到用户添加页面
        //return res.redirect(`/admin/user-edit?message=邮箱地址已经被占用`);
        return next(JSON.stringify({path:`/admin/user-edit`,message:'邮箱地址已经被占用'}))
    }
    //将用户信息添加到数据库中
    await User.create(req.body);
    //将页面重定向到用户列表页面
    res.redirect('/admin/user');
    
}